package two_point

import (
	C "gitee.com/ljfirst/algo-go-sdk/common/constant"
	"sort"
)

/**
 * @author ljfirst
 * @version V1.0
 * @date 2023/7/27 15:49
 * @author-Email ljfirst@mail.ustc.edu.cn
 * @blogURL https://blog.csdn.net/ljfirst
 * @description
 **/
type TwoSum struct {
}

func (m *TwoSum) Method(array []int, target int) []int {
	if len(array) == 0 {
		return nil
	}
	sort.Ints(array)
	l, r := 0, len(array)-1
	for l < r {
		if array[l]+array[r] == target {
			return []int{array[l], array[r]}
		} else if array[l]+array[r] < target {
			l++
		} else {
			r--
		}
	}
	return nil
}

func (m *TwoSum) GetAttribute() *C.Attribute {
	return &C.Attribute{
		Tags: []string{},
		Desc: &C.Desc{
			Name:        "TwoSum",
			NameCn:      "两数之和",
			Description: "",
			ParamsDesc: map[string]string{
			},
			Example: map[int]string{
			},
		},
	}
}
